The invention relates to a procedure for operating a server which supplies subscribers with data streams of different contents, as well as a server and a control unit employing this procedure.
The invention assumes a Video-on-Demand system as described e.g. in EP 0696872 A2.
Such a Video-on-Demand system consists of a video server connected to a large number of subscribers via a communication network. Each subscriber is provided with a set-top box connected to a television set. The video server is provided with a large number of memory units, in which video films of different contents are stored. The memory units feature video replay facilities which replay these video data sets and send the stream of video data so generated to a requesting subscriber. The video server is also provided with a control unit which allocates video replay resources to a requesting subscriber, and initiates the transmission of the requested video data stream to the requesting subscriber via the allocated resources. Resources no longer needed for a subscriber are marked as free. The allocation of such free resources is then carried out with the objective of sending a video data stream in parallel to the maximum number of subscribers, thus optimising the utilisation of the allocated resources.
It is an object of the invention to improve the efficiency of a server which supplies subscribers with data streams of different contents.
This task is solved by a procedure for operating a server (SERV) which supplies subscribers (SUB1 to SUB8) with data streams of different contents (CONT1 to CONT3), where during the procedure the different contents (CONT1 to CONT3) are each stored in at least one memory unit of the server and in order to supply a subscriber (SUB1 to SUB8) with the data stream of a particular content, the particular content is read back from a memory unit in which it is stored, and sent to the subscriber as a data stream, said method comprising the steps of: setting up a Busy list for each of the contents (CONT1 to CONT3) stored in the memory units (DSD1 to DSD9) of the server (SERV), with each memory unit (DSD1 to DSD4, DSD6 to DSD9) in which a content is stored being allocated to the Busy list of the content stored in it, and each memory unit (DSD5 to DSD9) which at that time is not needed for supplying a subscriber being allocated to a Free list, and selecting one of the memory units allocated to the Free list if a further memory unit becomes necessary for supplying a subscriber with a particular content, while first attempting to select a memory unit allocated to the Free list which is also allocated to the particular content""s Busy list.
This invention is based on the idea of controlling the memory units in which the different contents are stored, with the aid of two kinds of lists: a Busy list set up for each available content and to which are allocated those memory units in which the corresponding content is stored, and a Free list to which are allocated those memory units not needed at that time. Examples of contents are video films, music or other data which might be of interest to a subscriber. If, in order to supply a subscriber with a particular content, further memory units are needed in which the particular content is stored, the first memory units selected for this purpose are those memory units from the Free list which are also allocated to the particular content""s Busy list.
This has the advantage that the content of a memory unit needs to be changed far less often. On the one hand, such content changes are time-and resources-intensive. On the other, the memory unit is blocked whilst the content is changed. Thus, server operation in accordance with the invention significantly increases the server""s performance.
Further advantageous configurations of the invention will be apparent from the description below and the appended claims.
It is especially advantageous to represent the memory units through objects and to set up the Free list and the Busy lists by concatenating these objects. This results in a data structure which allows the operational procedure to be simply executed.